﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace IronTrishul.Compiler
{
    public class K
    {
        Dictionary<string, string> httpVerbs = new Dictionary<string, string>(){
  {"HEAD", "HEAD"},// Asks for the response identical to the one that would correspond to a GET request, but without the response body. This is useful for retrieving meta-information written in response headers, without having to transport the entire content. 
  {"GET",  "GET"}, // Requests a representation of the specified resource. Requests using GET (and a few other HTTP methods) "SHOULD NOT have the significance of taking an action other than retrieval".[1] The W3C has published guidance principles on this distinction, saying, "Web application design should be informed by the above principles, but also by the relevant limitations."[12] See safe methods below. 
  {"POST","POST"}, // Submits data to be processed (e.g., from an HTML form) to the identified resource. The data is included in the body of the request. This may result in the creation of a new resource or the updates of existing resources or both. PUT Uploads a representation of the specified resource. 
  {"DELETE","DELETE"},// Deletes the specified resource. TRACE Echoes back the received request, so that a client can see what (if any) changes or additions have been made by intermediate servers. 
  {"OPTIONS","OPTIONS"}, // Returns the HTTP methods that the server supports for specified URL. This can be used to check the functionality of a web server by requesting '*' instead of a specific resource. 
  {"CONNECT","CONNECT"},// Converts the request connection to a transparent TCP/IP tunnel, usually to facilitate SSL-encrypted communication (HTTPS) through an unencrypted HTTP proxy.[13] 
  {"PATCH",  "PATCH"},//Is used to apply partial modifications to a resource
  {"UNKNOWN","UNKNOWN"}
        };

        public Dictionary<string, string> HttpVerbs
        {
            get { return httpVerbs; }
            set { httpVerbs = value; }
        }
        string delimiter = " ";

        public string Delimiter
        {
            get { return delimiter; }
            set { delimiter = value; }
        }
        string endChar = ";";

        public string EndChar
        {
            get { return endChar; }
            set { endChar = value; }
        }
        string variableStart = "@";

        public string VariableStart
        {
            get { return variableStart; }
            set { variableStart = value; }
        }
        string variableDeclare = "VAR";

        public string VariableDeclare
        {
            get { return variableDeclare; }
            set { variableDeclare = value; }
        }

        Dictionary<string, string> systemVerbs = new Dictionary<string, string>() { 
            {"PRINT", "PRINT"}, //Print the variable in console..
            {"EXIT", "EXIT"},//Close the window
            {"HELP", "HELP"},//Shows up the help window
            {"SET", "SET"},//Shows all the global variable..
            {"VAR","VAR"} //variable--- optional... or declare variable with @ prefix
        };

        public Dictionary<string, string> SystemVerbs
        {
            get { return systemVerbs; }
            set { systemVerbs = value; }
        }

        Dictionary<string, string> operators = new Dictionary<string, string>() {
            {"=", "="},
            {"+","+"},
            {"-","-"},
            {"*","*"},
            {"/","/"}
        };

        public Dictionary<string, string> SupportedOperators
        {
            get { return operators; }
            set { operators = value; }
        }
    }
}
